/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cz.muni.fi.pa165.portalnahouby.daointerface;

import cz.muni.fi.pa165.portalnahouby.entity.Picker;
import java.util.List;
import javax.ejb.Local;

/**
 * Interface for DAO object for picker
 *
 * @author Lukas Marica
 */
@Local
public interface PickerDAO {

    /**
     * Stores new picker
     *
     * @param picker
     *
     * @throws IllegalArgumentException on null picker or not null picker's id
     */
    public void addPicker(Picker picker);

    /**
     * Updates picker
     *
     * @param picker
     *
     * @throws IllegalArgumentException on null picker or null picker's id
     */
    public void editPicker(Picker picker);

    /**
     * Removes picker
     *
     * @param id
     *
     * @throws IllegalArgumentException on null id
     */
    public void deletePicker(Long id);

    /**
     * Finds picker
     *
     * @param id
     *
     * @throws IllegalArgumentException on null id
     */
    public Picker findPicker(Long id);

    /**
     * Retrieves all available pickers
     *
     * @return List of all pickers
     */
    public List<Picker> getAllPickers();
}
